/*
 * 
 * 
 * 
 */
package com.hboxs.asl.dao;

import com.hboxs.asl.Filter;
import com.hboxs.asl.Order;
import com.hboxs.asl.entity.Merchant;
import com.hboxs.asl.entity.Promotion;

import java.util.List;

/**
 * Dao - 促销
 */
public interface PromotionDao extends BaseDao<Promotion, Long> {

    /**
     * 查找促销
     *
     * @param hasBegun 是否已开始
     * @param hasEnded 是否已结束
     * @param count    数量
     * @param filters  筛选
     * @param orders   排序
     * @return 促销
     */
    List<Promotion> findList(Boolean hasBegun, Boolean hasEnded, Integer count, List<Filter> filters, List<Order> orders);

    /**
     * 找到正在进行的促销活动
     * @param type 促销类型
     * @return
     */
    Promotion findUsingOne(Promotion.Type type);


    /**
     * 找到正在进行的促销活动
     * @param type 促销类型
     * @return
     */
    Promotion findUsingOne(Merchant merchant , Promotion.Type type);

    /**
     * 找到正在进行的所有促销活动
     * @return
     */
    List<Promotion> findUsingList();

    /**
     * 找到商家正在进行的所有促销活动
     * @return
     */
    List<Promotion> findUsingList(Merchant merchant);

}